using Godot;
using System;

namespace DRE.Battle {
	public abstract class Character : Node2D {
		public virtual new string Name { get; set; }
		public virtual float MaxHp { get; set; }
		public virtual float Hp { get; set; }
		[Flags]
		public enum Status {
			None 		= 0b00000000,
			Sparable 	= 0b00000001,
			Tired 		= 0b00000010,
			Asleep		= 0b00000100,
		}
		public virtual Status CurrentStatus{get;set;}=Status.None;

		public virtual void OnCharacterEnter() { }
		public virtual void OnCharacterExit() { }
		public virtual void OnBattleStart() { }
		public virtual void OnBattleTurnEnter() { }
		public virtual void OnBattleTurnStart() { }
		public virtual void OnBattleTurnEnd() { }
		public virtual void OnBattleTurnExit() { }
	}
}